# coding=UTF-8
# Autor: Thiago Rodrigues Carvalho
# Criado em: 24/10/2014
# Atenção: Desenvolvido e testando em Python 3.4 (testes com Python 2.7 mostraram erro nas linhas de try/catch)
linhas = 1
colunas = 1

try:
    #Leitura dos dados
    linhas=int(input("Digite o número de linhas:"))
    colunas=int(input("Digite o número de colunas:"))
    #Corrigindo os dados
    if linhas > 20:
        linhas = 20
    
    if colunas > 20:
        colunas = 20
    
    def desenhaMoldura(linhas, colunas):
        #Desenhando a primeira linha da moldura
        topo = ""
        for i in range(0, colunas):
            topo += "-"
            
        print (topo)
        #Desenhando a moldura
        for i in range(0, linhas - 2):
            meio = "|"
            for j in range(0, colunas - 2):
                meio += "+"
            meio += "|"
            
            print (meio)
        #Desenhando a última linha da moldura
        fundo = ""
        for i in range(0, colunas):
            fundo += "-"
            
        print (fundo)
        
    desenhaMoldura(linhas, colunas)
    
except ValueError:
    print ("Entrada inválida. Inicie o programa novamente.")